package avicit.bdp.dgs.metadata.dao;

import avicit.bdp.common.base.BaseDAO;
import avicit.bdp.dgs.metadata.dto.MetadataModelAttributeDTO;
import com.github.pagehelper.Page;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * @author mayi 元模型属性数据操作层
 */
public interface MetadataModelAttributeDao extends BaseDAO<MetadataModelAttributeDTO> {

  /**
   * 分页查询
   *
   * @param metadataModelId 元模型ID
   * @param keyWords 关键词
   * @param typeList 属性分类[1技术属性，2内置业务属性，3自定义业务属性]
   * @return 分页数据
   */
  Page<MetadataModelAttributeDTO> getPageList(
      @Param("metadataModelId") String metadataModelId,
      @Param("keyWords") String keyWords,
      @Param("typeList") List<Integer> typeList);

  /**
   * 批量新增
   *
   * @param list 新增列表
   */
  void batchSave(@Param("list") List<MetadataModelAttributeDTO> list);

  int changeStatus(@Param("id") String id, @Param("validFlag") Integer validFlag);

  List<MetadataModelAttributeDTO> getListByDatasourceAndType(
      @Param("datasourceType") String datasourceType,
      @Param("businessCodeList") List<String> businessCodeList);
}
